/*
 * BloqueTextoSalida.h
 *
 *  Created on: 07/06/2010
 *      Author: nscuri
 */

#ifndef BLOQUETEXTOSALIDA_H_
#define BLOQUETEXTOSALIDA_H_
#include <fstream>
#include <string>

class BloqueTextoSalida {

private:
		int size;
		int cantCaracteresValidos;
		bool finBloq;
		bool finArch;
		std::ofstream *archivo;

	public:
		char *bloque;
		BloqueTextoSalida() {size=10;bloque=new char[size];};
		BloqueTextoSalida(std::string nombrearchivo);
		virtual ~BloqueTextoSalida();

		bool finBloque() { return finBloq; }
		bool finArchivo() { return finArch; }
		void setFinBloque(bool fb){this->finBloq=fb;};
		void setFinArchivo(bool fb){this->finArch=fb;};
		void setTexto(char *t) { bloque = t;}
		void vaciarBloque();
		char operator[](int n);
		void setChar(int n,char c);
		char getCaracterEnPos(int pos) {return bloque[pos]; }
		void setCaracterEnPos(char car, int pos) { bloque[pos] = car; cantCaracteresValidos++; }
		int getCantCaracteresValidos() { return cantCaracteresValidos; }
		int getSize() { return size;}
};

#endif /* BLOQUETEXTOSALIDA_H_ */
